
$(function () {
    //动态渲染文章分类下拉框完成
    function getList() {
        $.ajax({
            url: '/admin/category/list',
            success(res) {
                // console.log(res)
                let data = res.data
                let html = `<option value="">全部分类</option>`
                data.forEach(item => {
                    html += `<option value=${item.id}>${item.name}</option>`
                });
                $('#selCategory').html(html)
            }
        })
    }
    getList()


    //动态生成文章列表
//定义一个全局变量params
    let params = {
// key	string	搜索关键词，可以为空，为空返回某类型所有文章
        key : '',
// type	string	文章类型id，可以为空，为空返回所有类型文章
        type:'',
// state	string	文章状态，草稿 ，已发布,为空返回所有状态文章
        state:'',
// page	number	当前页，为空返回第1页
        page:'',
// perpage	number	每页显示条数，为空默认每页6条
        perpage:''
    }
    
    function getArticle() {
        $.get('/admin/article/query',params,function (res) {
            // console.log(res)
            let list = res.data.data
            let html = template('temp', { list })
            $('#tableList tbody').html(html)

            //当动态渲染文章的时候,也要动态渲染总条数
            let pageCount = res.data.totalCount
            // console.log(pageCount)
            renderPager(pageCount)
        })
    }
    getArticle()

    //文章筛选功能
    $('#btnSearch').click(function () {
        params.key = $('#aname').val().trim()
        params.type = $('#selCategory').val().trim()
        params.state = $('#selStatus').val().trim()
        //重置页码,从第一页开始
        params.page = 1
        getArticle()
    })

    //文章重置功能
    $('#reset').click(function () {
        $('#aname').val('')
        $('#selCategory').val('')
        $('#selStatus').val('')
        params.key =   ''
        params.type =  ''
        params.state = ''
        //重置页码,从第一页开始
        params.page = 1
        getArticle()
    })

    //分页功能
    function renderPager(pageCount) {
        var laypage = layui.laypage;
  
        //执行一个laypage实例
        laypage.render({
            elem: 'pager', //注意，这里的 test1 是 ID，不用加 # 号
            count: pageCount, //数据总数，从服务端得到
            limit: params.perpage,   //数据条数
            curr:params.page,
            jump: function(obj, first){
                //obj包含了当前分页的所有参数，比如：
                // console.log(obj.curr); //得到当前页，以便向服务端请求对应页的数据。              
                //首次不执行
                if(!first){
                //do something
                    params.page = obj.curr
                    getArticle()       
                }
            }
        });
    }


    //删除功能
    function deleArticle() {
        //动态生成,事件委托
        $('#tableList tbody').on('click', '.delete', function () {
            layer.confirm('你确定要删除嘛',{title:'提示'},function () {
                let id = $('.delete').data('id')
                $.ajax({
                    url: '/admin/article/delete',
                    type: 'post',
                    data: { id },
                    success(res) {
                        layer.msg(res.msg)
                        getArticle()
                    }
                })
            })
            
        })
    }
    deleArticle()
})